--自定义容器的测试脚本
--[[
    HTList：列表
--]]

require 'HTList'

----------//测试 List//----------
function main()
    --创建
    scoreList = List:New(type(1))
    scoreList:Add(85)
    scoreList:Add(72)
    scoreList:Add(81)
    scoreList:Add(98)
    scoreList:Add(81)
    scoreList:Add(57)
    scoreList:Add(81)
    scoreList:Add(60)
    --遍历
    print(string.format('当前列表中共有 %d 个 %s 数据',scoreList:Count(),scoreList:ItemType()))
    scoreList:ForEach(function(item)
        print(string.format('第 %d 个分数：%d',scoreList:IndexOf(item),item))
    end)
    --排序
    print('升序排序后：')
    scoreList:Sort(function(a,b)
        return a < b
    end)
    scoreList:ForEach(function(item)
        print(string.format('第 %d 个分数：%d',scoreList:IndexOf(item),item))
    end)

    print('降序排序后：')
    scoreList:Sort(function(a,b)
        return a > b
    end)
    scoreList:ForEach(function(item)
        print(string.format('第 %d 个分数：%d',scoreList:IndexOf(item),item))
    end)
    --移除指定元素
    print('移除第2个元素后：')
    scoreList:RemoveAt(2)
    scoreList:ForEach(function(item)
        print(string.format('第 %d 个分数：%d',scoreList:IndexOf(item),item))
    end)

    print('移除元素 81 后：')
    scoreList:Remove(81)
    scoreList:ForEach(function(item)
        print(string.format('第 %d 个分数：%d',scoreList:IndexOf(item),item))
    end)

    print('当前元素剩余个数：'..scoreList:Count())
    --搜索元素
    local res = scoreList:Find(function(item)
        return item == 98
    end)
    print('搜索元素 98 ，搜索结果：'..(res == nil and '不存在' or '存在'))
    --清空
    scoreList:Clear()
    print('清空列表后，剩余元素个数：'..scoreList:Count())

    res = scoreList:Find(function(item)
        return item == 98
    end)
    print('搜索元素 100 ，搜索结果：'..(res == nil and '不存在' or '存在'))
end

main()